package cn.ilovese.collect.serviceimpl.file;

import cn.ilovese.collect.datamapper.file.FileMapper;
import cn.ilovese.collect.po.file.File;
import cn.ilovese.collect.service.file.TaskFileService;
import cn.ilovese.collect.util.Constant;
import cn.ilovese.collect.vo.ResultVO;
import cn.ilovese.collect.vo.file.FileVO;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
public class TaskFileServiceImpl implements TaskFileService {

    // @Resource标识特定的目标组件，你们自己添加，类似软工二
    // @Autowired装载java bean，用于set方法，你们自己添加，类似软工二
    //注意在这里添加每个实现方法的说明注释，类似以下
    /**
     * 这个方法干了什么
     *
     * @param 参数1 解释
     * @param 参数2 解释
     * ......
     * @return 返回值解释
     */

    @Resource
    FileMapper fileMapper;

    /**
     * 加载某个任务对应的所有文件
     * @param taskId
     * @return
     */
    @Override
    public FileVO getAllTaskFile(Integer taskId,Integer kind) {
        List<File> tempList = fileMapper.selectByTaskId(taskId);
        List<FileVO> ret = new ArrayList<>();
        for(File file: tempList){
            //ret.add(new FileVO(file));
            if(file.getKind()==kind)
                return new FileVO(file);
        }
        //return ret;
        return null;
    }

    /**
     * 为某个任务上传一个相关文件
     * @param fileVO
     * @return
     */
    @Override
    public ResultVO<FileVO> createTaskFile(FileVO fileVO) {
        File file=new File(fileVO);
        int id=fileMapper.insert(file);
        if(id > 0){
            return new ResultVO<>(Constant.REQUEST_SUCCESS, "众包文件上传成功", new FileVO(file));
        }
        return new ResultVO<>(Constant.REQUEST_FAIL, "众包文件上传失败");
    }
}
